// *********************************************************
//      Copyright (c) Kosta Gaitanis
//      All rights reserved
//
//      k.gaitanis@gmail.com
//
// *********************************************************

#ifndef ITEMSLISTWIDGET_H
#define ITEMSLISTWIDGET_H

#include "Item.h"

#include <QTreeWidget>

class ItemsListWidget : public QTreeWidget
{
    Q_OBJECT
public:
    ItemsListWidget(const Item* root = 0, QWidget *parent = 0);

    void setRootItem(const Item *root);
    const Item *getCurrentItem() const;

    void setCurrent(const Item* item);

signals:
    void currentItemChanged(const Item* item);
    void itemVisibleChanged();

private slots:
    void onCurrentChanged();
    void onItemChanged(QTreeWidgetItem* item, int column);

private:
    QTreeWidgetItem* createTreeItem(const Item *item) const;
    const Item* m_root;

};

#endif // ITEMSLISTWIDGET_H
